import { fileURLToPath, pathToFileURL } from "url"
import fs from "fs"
export let getcontrollerUrl = function () {
    let controllerFile = new URL("../controller", import.meta.url).href
    let controllerUrl = fileURLToPath(controllerFile)
  return  fs.readdirSync(controllerUrl).filter((item) => item.endsWith("Controller.js")).map(item => pathToFileURL(`${item}/${controllerFile}`)
}

export let regController = function (router, controllerFile) {
    controllerFile.forEach(async file => {
        let { default: obj } = await import(file)
        obj.forEach(obj => {
            if (obj.method === "get") {
                router.get(obj.url, obj.fn)
            }
            if (obj.method === "post") {
                router.post(obj.url, obj.fn)
            }
            if (obj.method === "put") {
                router.put(obj.url, obj.fn)
            }

            if (obj.method === "del") {
                router.delete(obj.url, obj.fn)
            }
        })
    })
}








// 简化后版本
// import { fileURLToPath, pathToFileURL } from 'url'
// import path from 'path'
// import fs from 'fs'

// export const getControllerUrls = () => {
//   // 1. 直接获取控制器目录的物理路径
//   const controllerDir = fileURLToPath(new URL('../controller', import.meta.url))
  
//   // 2. 一次性完成筛选和路径转换
//   return fs.readdirSync(controllerDir)
//     .filter(file => file.endsWith('Controller.js'))
//     .map(file => pathToFileURL(path.join(controllerDir, file)))